* {
    margin: 0;
    padding: 0;
}

html {
    height: 100%;
    background: radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%);
    overflow: hidden;
}

.title {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 50px;
    font-family: 'Lato', sans-serif;
    font-weight: 300;
    letter-spacing: 10px;
    background:linear-gradient(white, #38495a);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
}

@function getShadows($n) {
    $shadows: '#{random(100)}vw #{random(100)}vh #fff';

    @for $i from 2 through $n {
        $shadows: '#{$shadows}, #{random(100)}vw #{random(100)}vh #fff';
    }

    @return unquote($shadows);
}

$duration: 400s;
$count: 1000;
@for $i from 1 through 4 {
    $duration: floor($duration / 2) ;
    $count: floor( $count / 2);
    .layer#{$i} {
        $size: #{$i}px;
        position: fixed;
        width: $size;
        height: $size;
        border-radius: 50%;
        background: #f40;
        top: 0;
        left: 0;
        box-shadow: getShadows($count);
        animation: moveUp $duration linear infinite;

        &::after {
            content: '';
            position: fixed;
            top: 100vh;
            left: 0;
            width: $size;
            height: $size;
            border-radius: inherit;
            box-shadow: inherit;
        }
    }
}

@keyframes moveUp {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-100vh);
    }
}